HI!大家好,我是 Shammi!😊
這段時間,我一直在為我的 SDGs 聊天機器人專案做最後的收尾和優化,原先的計畫是要幫它加入「多輪對話」和「記憶」功能,讓它能像個真正的對話夥伴。然而,就在我準備將專案部署上線前,我遇到了開發過程中最大的挑戰:我賴以維生的核心 AI 模組已不再支援了!
這就像是跑一場馬拉松,在終點前卻發現跑道變了。這次的經驗讓我深刻體會到,在瞬息萬變的 AI 世界中,程式碼完成不代表專案就此結束,持續檢視與適應才是常態。
今天,我想分享如何面對這個突如其來的改變,並成功轉移到新的模組上。
當我興高采烈地準備將專案推向部署階段時,我發現原先使用的 gemini-1.5-flash
模組,突然不再支援我所使用的開發環境與特定功能,這對我來說是一個致命性的打擊,因為整個專案的「思考」和「生成」邏輯都建立在這個模組上。
此外,用來將文本轉換成向量的 text-embedding-004
模型,也需要進行升級。這意味著我的知識庫檢索系統也必須跟著調整。
這不僅僅是換個參數這麼簡單,而是需要對整個專案的 AI 核心進行全面性的更新與適應。
面對模組的重大變動,我必須找到一個新的、穩定且強大的替代方案。經過研究,我決定將專案的核心轉移到 Vertex AI 平台上。這不僅解決了當前的模組支援問題,也為未來的擴展奠定了更穩固的基礎。
gemini-1.5-flash
更換為 gemini-2.5-flash
。text-embedding-004
更換為 text-embedding-005
。值得注意的是,這些新的模組都有其支援期限(例如 gemini-2.5-flash
目前支援到 2026/06/17),這也再次提醒了我,在 AI 領域,定期檢視模組的支援狀態是專案維護不可或缺的一環。
關於模組的說明文件:
https://cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/2-5-flash?hl=zh-tw
轉移到 Vertex AI 後,程式碼的主要變動集中在模型的初始化。現在,我需要先初始化 Vertex AI SDK,然後再透過它來載入新的模型。
以下是我的程式碼調整:
#核心模組載入
from vertexai.preview.generative_models import GenerativeModel, Part, Tool
from vertexai.language_models import TextGenerationModel
from vertexai.language_models import embedding_models
#初始化 Vertex AI 和模型
gemini_model = TextGenerationModel.from_pretrained("gemini-2.5-flash")
embedding_model = embedding_models.TextEmbeddingModel.from_pretrained("text-embedding-005")
logging.info("Vertex AI 初始化成功。")
def generate_response(query, retrieved_chunks):
#(使用 gemini_model 生成回應)
def get_rag_answer(query):
#(使用 embedding_model 進行向量化和檢索)
# (其餘程式碼保持不變)
這段程式碼替換了原有的模型初始化部分,並確保整個專案都能順利地使用 Vertex AI 的新模組。雖然這項改變讓專案進度稍微延遲,但也讓我學會了如何應對 AI 模組快速迭代的現實。
今天的挑戰,讓我從一個單純的開發者,變成了專案的適應者和維護者。我學到:在 AI 專案中,靈活性和應變能力與程式碼的撰寫同樣重要。而在修改模組後,經過不斷的測試都會遇到機器人回覆的狀態與舊模組不一樣,這真的是此專案一大挑戰!
儘管原先計畫的「多輪對話」和「記憶」功能被暫時擱置,但能夠成功解決模組不支援的問題,並讓專案重新回到軌道上,我感到非常驕傲。接下來,我會繼續完成這些進階功能,讓我的 SDGs 機器人變得更智慧、更強大!